//== SAGITTARIUS ============================================================================

//== BEGINNING OF CODE ===============================================================

#ifndef __SAGUTTARUIS__LSYMBOLFIXED__H_
#define __SAGUTTARUIS__LSYMBOLFIXED__H_

//== INCLUDES ========================================================================

#include "sagittarius/core/SagittariusCore.h"
#include "sagittarius/unicode/CUnicode.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef UnicodeCChar LXAlphaType;
//typedef LXAlphaType* LexBuf;
//typedef const LXAlphaType* constLexBuf;

#define LX_ALPHA_SET(x, val)        x = val
#define LX_ALPHA_SET_SPC(x, val)    x = val
#define LX_ALPHA_CLEAR(x)           //no op

#define LX_CMPALPHA_EQ(x, y) (x == y)
#define LX_CMPALPHA_EQ_SPC(x, y) (x == y) //special: y is usually an unsigned long or something
#define LX_CMPALPHA_LT(x, y) (x < y)
#define LX_CMPALPHA_LTE(x, y) (x <= y)
#define LX_CMPALPHA_GT(x, y) (x > y)
#define LX_CMPALPHA_GTE(x, y) (x >= y)

//arithmetic
#define LX_ALPHA_INC(x) ++x //don't rely on the result of this expression
#define LX_ALPHA_DEC(x) --x
#define LX_ALPHA_ADD_SPC(r,x,y) r = x+y

#ifdef __cplusplus
}//extern "C"
#endif

#endif
